#ifndef __AES_CRYPT_H
#define __AES_CRYPT_H

//密钥长度256bit
#define AES_KEY_LEN 32

/*aes 加密
* plaintext:明文
* palintext_len:明文长度
* key:密钥
* ciphertext:密文（密文所指向的内存大小大于等于明文长度）
* 成功返回密文长度，否则返回0或-1
*/
int aes_encrypt(const unsigned char *plaintext,int palintext_len,const unsigned char *key,unsigned char *ciphertext);
/*aes 解密
* ciphertext:密文
* ciphertext_len:密文长度
* key:密钥
* plaintext:明文
* 成功返回明文长度，否则返回0或-1
*/
int aes_decrypt(const unsigned char *ciphertext,int ciphertext_len,const unsigned char *key,unsigned char *plaintext);
/*随机生成密钥
* buf:存放生成的密钥（指向的内存大小为AES_KEY_LEN字节）
* 成功返回1，否则返回0
*/
int aes_generate_rand_key(unsigned char *buf);

#endif/*__AES_CRYPT_H*/
